#ifndef INPUTGP2X_H
#define INPUTGP2X_H

#include <SDL.h>

#include "Input.h"

#define GP2X_BUTTON_UP              (0)
#define GP2X_BUTTON_DOWN            (4)
#define GP2X_BUTTON_LEFT            (2)
#define GP2X_BUTTON_RIGHT           (6)
#define GP2X_BUTTON_UPLEFT          (1)
#define GP2X_BUTTON_UPRIGHT         (7)
#define GP2X_BUTTON_DOWNLEFT        (3)
#define GP2X_BUTTON_DOWNRIGHT       (5)
#define GP2X_BUTTON_CLICK           (18)
#define GP2X_BUTTON_A               (12)
#define GP2X_BUTTON_B               (13)
#define GP2X_BUTTON_X               (15)
#define GP2X_BUTTON_Y               (14)
#define GP2X_BUTTON_L               (11)
#define GP2X_BUTTON_R               (10)
#define GP2X_BUTTON_START           (8)
#define GP2X_BUTTON_SELECT          (9)
#define GP2X_BUTTON_VOLUP           (16)
#define GP2X_BUTTON_VOLDOWN         (17)

//!Input class for the GP2X
class CInputGP2X:public CInput
{
private:
	//!Variable representing the joystick of the GP2X
	SDL_Joystick* m_joystick;

public:
	//!Constructor.
	CInputGP2X(void);

	//!Destructor.
	~CInputGP2X(void);

	//!Initialise the action mapping. 
	/*!
	It fill the map between the SDL keys and the actions.
	*/
	bool initialiseActionMapping(void);

	//!Update the inputs.
	void doUpdate(void);


};
#endif
